/*
 * @(#)XfvhdlUniverse.java        3.0                        2004/09/14
 *
 * This file is part of Xfuzzy 3.0, a design environment for fuzzy logic
 * based systems.
 *
 * (c) 2000 IMSE-CNM. The authors may be contacted by the email address:
 *                    xfuzzy-team@imse.cnm.es
 *
 * Xfuzzy is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License as published by
 * the Free Software Foundation.
 *
 * Xfuzzy is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * for more details.
 */

package xfuzzy.xfvhdl;

import java.util.*;

/**
* Clase que gestiona el universo de discurso una vez que se discretizan 
* las funciones miembro de las variables de entrada.
* @author Jos� Mar�a �vila Maireles, <b>e-mail</b>: josavimai@alum.us.es
* @version 1.0
*/
public class XfvhdlUniverse {

   //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
   //	  ATRIBUTOS PRIVADOS DE LA CLASE 				            
   //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
   private double max;
   private double min;
   private int card;
   @SuppressWarnings("rawtypes")
private List points;

   //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
   //				CONSTRUCTORES DE LA CLASE				 	   
   //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//	
   /**
    * Constructor por defecto de XFvhdlUniverse
    */
   public XfvhdlUniverse() {
   }

   /**
    * Constructor con par�metros de XFvhdlUniverse
    */
   @SuppressWarnings("rawtypes")
public XfvhdlUniverse(String v, double mx, double mn, int c) {
      max = mx;
      min = mn;
      card = c;
      points = new ArrayList();
   }

   //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
   //			M�TO_DOS P�BLICOS DE LA CLASE				        
   //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//	
   /**
    * M�todo que devuelve el m�ximo del universo de discurso.
    * @return max Es un double que contiene el m�ximo del universo
    * de discurso.
    */
   public double getMax() {
      return max;
   }

   /**
    * M�todo que devuelve el m�nimo del universo de discurso.
    * @return min Es un double que contiene el m�nimo del universo
    * de discurso.
    */
   public double getMin() {
      return min;
   }

   /**
    * M�todo que devuelve la cardinalidad del universo de discurso.
    * @return min Es un integer que contiene la cardinalidad del universo
    * de discurso.
    */
   public int getCard() {
      return card;
   }

	/**
	 * M�todo que devuelve la longitud en puntos del universo de discurso.
	 * @return min Es un integer que contiene el n� de puntos del universo
	 * de discurso.
	 */
   public int getLength() {
      return points.size();
   }

   /**
    * M�todo que nos permite a�adir un punto al universo de discurso.
    * @param p Es el punto que deseamos a�adir al universo de discurso.
    */
   @SuppressWarnings("unchecked")
public void addXUniversePoint(XfvhdlUniversePoint p) {
      points.add(p);
   }

   /**
    * M�todo que nos devuelve un punto del universo de discurso.
    * @param i Indica qu� punto deseamos obtener.
    * @return Devuelve el punto que ocupa la posici�n i-�sima en el
    * universo de discurso.
    */
   public XfvhdlUniversePoint getXUniversePoint(int i) {
      return (XfvhdlUniversePoint) points.get(i);
   }

} // Fin de la clase
